home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / src / Tools / cproto-3.0 / symbol.h < prev   
Encoding:
C/C++ Source or Header  |  1995-05-03  |  824 b   |  29 lines

  1. /* $Id: symbol.h 3.4 1993/05/26 01:36:04 cthuang Exp $
  2.  *
  3.  * A symbol table is a collection of string identifiers stored in a
  4.  * hash table.
  5.  */
  6. #ifndef SYMBOL_H
  7. #define SYMBOL_H
  8.  
  9. typedef struct symbol {
  10.     struct symbol *next;    /* next symbol in list */
  11.     char *name;         /* name of symbol */
  12.     char *value;        /* value of symbol (for defines) */
  13.     short flags;        /* symbol attributes */
  14. } Symbol;
  15.  
  16. /* The hash table length should be a prime number. */
  17. #define SYM_MAX_HASH 251
  18.  
  19. typedef struct symbol_table {
  20.     Symbol *bucket[SYM_MAX_HASH];    /* hash buckets */
  21. } SymbolTable;
  22.  
  23. extern SymbolTable *new_symbol_table(); /* Create symbol table */
  24. extern void free_symbol_table();    /* Destroy symbol table */
  25. extern Symbol *find_symbol();        /* Lookup symbol name */
  26. extern Symbol *new_symbol();        /* Define new symbol */
  27.  
  28. #endif
  29.